package org.kgduyjj.toolkit.exception;

import org.kgduyjj.toolkit.util.StringUtils;

/**
 * 对于消息进行简单的处理
 * 
 * @author Kgduyjj
 *
 */
public class SimpleMessageException extends RuntimeException {

    private static final long serialVersionUID = 1L;

    /**
     * 构造 提供异常消息构建模板
     * 
     * @param messageTemplate
     * @param params
     */
    public SimpleMessageException(String messageTemplate, Object... params) {
        super(handleMessageTemplate(messageTemplate, params));
    }

    /**
     * 构造 异常消息模板
     * 
     * @param e
     * @param messageTemplate
     * @param params
     */
    public SimpleMessageException(Throwable e, String messageTemplate, Object... params) {
        super(handleMessageTemplate(messageTemplate, params), e);
    }

    /**
     * 处理消息模板
     * 
     * @param messageTemplate
     * @param params
     * @return
     */
    protected static String handleMessageTemplate(String messageTemplate, Object... params) {
        if (StringUtils.isBlank(messageTemplate)) {
            return "No message template";
        }
        return StringUtils.format(messageTemplate, params);
    }

}
